#include <iostream>
using namespace std;

int n,k;
int way;
int a[55];
bool is_can_1(int i,int p){
	return true;
}
bool is_can_2(int x,int p){
	for(int i=1; i<p; i++)
		if( x==a[i] ) return false;
	return true; 
}
bool is_can_3(int i,int p){
	if( i%2 ) return true;
	else return false;
}
void division(int p,int cnt,int limits,bool (*is_can)(int i,int p)){
	if( cnt==n ){
		if( is_can != is_can_1 ) way++;
		else if( p-1 == limits ) way++;
		return;
	}
	if( p>limits ) return;
	for(int i=a[p-1]; i<=n-cnt; i++){
		if( is_can(i,p) ){
			a[p] = i;
			division(p+1,cnt+i,limits,is_can);
		}
	}
}
int main(){
	freopen("in.txt","r",stdin);
	a[0] = 1;
	while( cin >> n >> k ){
		way = 0;
		division(1,0,k,is_can_1);
		printf("%d\n",way);
		way = 0;
		division(1,0,n/2+1,is_can_2);
		printf("%d\n",way);
		way = 0;
		division(1,0,n,is_can_3);
		printf("%d\n",way);
	}
	return 0;
}
